Multiple object detection

ABSTRACT

A system for singulating objects includes a bin for receiving a collection of objects, a robotic manipulator for grasping objects from the bin, a scale for measuring a weight of the grasped objects, and a computer system for comparing measured weights to acceptable weight ranges to detect double picks. Methods include determining acceptable weight ranges by weighing a plurality of objects.

BACKGROUND Technical Field

The present disclosure relates to autonomous robotic manipulation inindustrial systems and, more specifically, to detection that a roboticmanipulator has selected multiple objects rather than a single,individual object, which may represent a failure of an effort tosingulate objects, and which may be referred to as “double pick”detection.

Description of the Related Art

Automated robotics, conveyors, and other motive devices are used in manyindustrial or logistic applications to sort, relocate, convey, orotherwise manipulate objects in order to achieve a desired goal. All ofthe objects in certain industrial or logistical operations may be of thesame type such that the same destination or operation is applicable toeach object involved. In postal services, for example, sorting machinesprocess letters and parcels via recognition of optical charactersthereon and imprint each processed item of mail with a correspondingbarcode indicating a destination for the respective processed item ofmail. The operation to be performed for each object is thereforepredetermined and the process may be easily automated.

In some situations, automated processing of a collection of objectsremains a complex and difficult challenge. Consider a scenario in whicha collection of objects are assembled that include different objecttypes and each object type is to be processed differently than otherobject types. In a manufacturing operation, a collection of objects(e.g., shipment) may be received that includes a uniform collection ofcomponents of the same type. In other scenarios, a collection of objectsmay be received that includes different object types, each object typeto be processed differently than the other object types. In somesolutions, artificial intelligence technologies (e.g., convolutionalneural networks) may be implemented to optically recognize an object by,e.g., a size of the object, a shape of the object, and/or content of alabel on the object. However, such artificial intelligence solutionsrequire a significant amount of training to sufficiently train theartificial intelligence model to recognize each type of object involved.Furthermore, artificial intelligence solutions may be subject to somelevel of error, which can adversely affect the quality or consistency ofthe process implemented.

It is important that automated robotics, conveyors, and other motivedevices used to sort, relocate, convey, or otherwise manipulate objectsare able to singulate the objects, that is, to separate individualobjects from the collection and from one another. To do so, it isfurthermore important that such devices are able to determine, detect,or identify whether the objects have been successfully singulated orseparated from one another.

BRIEF SUMMARY

A singulation system may be summarized as comprising: a containerconfigured to receive singulated objects from a collection of objects tobe singulated; a robotic manipulator configured to pick up an individualobject from the collection of objects; a sensor configured to measure aweight of the individual object; and a computer system configured tocompare the measured weight of the individual object to an acceptablerange of weights for the individual object to confirm that theindividual object was successfully singulated.

The container may be a tilt tray. The robotic manipulator may beconfigured to deposit the individual object into the container and thesensor may be a scale configured to measure a weight of the individualobject while the individual object is in the container. The sensor maybe a component of the robotic manipulator. The sensor may be a scale ora strain gage. The sensor may be a weighing conveyor belt and therobotic manipulator may be configured to deposit the individual objectonto the weighing conveyor belt. The singulation system may furthercomprise a separating conveyor belt configured to receive the individualobject from the weighing conveyor belt. The separating conveyor belt mayinclude a diverter configured to modify a path across the separatingconveyor belt based on the confirmation that the individual object wassuccessfully singulated. The diverter may be a wiper configured to moveto a first position, wherein in the first position the wiper blocks thepath across the separating conveyor belt, and to move to a secondposition, wherein in the second position the wiper does not block thepath across the separating conveyor belt.

A method of singulating objects from a collection of objects may besummarized as comprising: receiving the collection of objects; using arobotic manipulator to pick up at least one object from the collectionof objects; measuring a weight of the at least one object picked up bythe robotic manipulator; determining a characteristic of the at leastone object picked up by the robotic manipulator; comparing the measuredweight to an acceptable range of weights for an individual object havingthe determined characteristic; determining, based on the comparison,whether or not the at least one object was successfully singulated; anddepositing the at least one object into a container.

The method may further comprise selecting the container from a pluralityof containers based on the determination that the at least one objectwas or was not successfully singulated. Determining a characteristic ofthe at least one object may include reading an RFID tag, scanning abarcode, and/or visually determining the characteristic. Depositing theat least one object into a container may include tilting a tilt tray.The method may further comprise, prior to receiving the collection ofobjects, determining the acceptable range of weights. Determining theacceptable range of weights may include weighing a plurality of objectshaving the determined characteristic. Determining the acceptable rangeof weights may include determining an average of weights of theplurality of objects and a statistical variance in the weights of theplurality of objects. Determining the acceptable range of weights may bebased on weights of objects that do not have the determinedcharacteristic.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is an environment in which a manipulated object of a plurality ofobjects is recognized.

FIG. 2 is a schematic diagram of a computer system communicativelycoupled with components of the environment of FIG. 1.

FIG. 3 is a schematic diagram of a robotic system communicativelycoupled with the computer system of FIG. 2.

FIG. 4 is a diagram of a process for determining an operation to beperformed as a result of identification of a manipulated object among aplurality of objects.

FIG. 5 is a diagram of a first state of the environment of FIG. 1.

FIG. 6 is a diagram of a second state of the environment of FIG. 1.

FIG. 7 is a diagram of a third state of the environment of FIG. 1.

FIG. 8 is a diagram of a fourth state of the environment of FIG. 1.

FIG. 9A is a representation of information corresponding toradiofrequency (RF) signals received by a first antenna of theenvironment of FIG. 1.

FIG. 9B is a representation of information corresponding toradiofrequency (RF) signals received by a second antenna of theenvironment of FIG. 1.

FIG. 10A is a representation of information corresponding toradiofrequency (RF) signals received by a first antenna of theenvironment of FIG. 1.

FIG. 10B is a representation of information corresponding toradiofrequency (RF) signals received by a second antenna of theenvironment of FIG. 1.

FIG. 11 is an overhead view of the environment of FIG. 1 that includes aplurality of antennas.

FIG. 12 is a method of recognizing a manipulated object of a pluralityof objects according to one or more embodiments.

FIG. 13 illustrates a perspective view of a system for separatingobjects from a plurality of objects and detecting whether plural objectshave been separated together.

FIG. 14 illustrates a perspective view of a portion of the system ofFIG. 13, including a tilt tray and associated components.

FIG. 15 illustrates a perspective view of the tilt tray of the system ofFIG. 13.

FIG. 16 illustrates a perspective view of another system for separatingobjects from a plurality of objects and detecting whether plural objectshave been separated together.

DETAILED DESCRIPTION

FIG. 1 shows an environment 100 in which a manipulated object of aplurality of objects 102 is recognized according to one or moreembodiments. The following description, along with the accompanyingdrawings, sets forth certain specific details in order to provide athorough understanding of various disclosed embodiments. However, oneskilled in the relevant art will recognize that the disclosedembodiments may be practiced in various combinations, without one ormore of these specific details, or with other methods, components,devices, materials, etc. In other instances, well-known structures orcomponents that are associated with the environment of the presentdisclosure, including but not limited to the communication systems andnetworks and the environment, have not been shown or described in orderto avoid unnecessarily obscuring descriptions of the embodiments.Additionally, the various embodiments may be methods, systems, media, ordevices. Accordingly, the various embodiments may be entirely hardwareembodiments, entirely software embodiments, or embodiments combiningsoftware and hardware aspects.

Throughout the specification, claims, and drawings, the following termstake the meaning explicitly associated herein, unless the contextclearly dictates otherwise. The term “herein” refers to thespecification, claims, and drawings associated with the currentapplication. The phrases “in one embodiment,” “in another embodiment,”“in various embodiments,” “in some embodiments,” “in other embodiments,”and other variations thereof refer to one or more features, structures,functions, limitations, or characteristics of the present disclosure,and are not limited to the same or different embodiments unless thecontext clearly dictates otherwise. As used herein, the term “or” is aninclusive “or” operator, and is equivalent to the phrases “A or B, orboth” or “A or B or C, or any combination thereof,” and lists withadditional elements are similarly treated. The term “based on” is notexclusive and allows for being based on additional features, functions,aspects, or limitations not described, unless the context clearlydictates otherwise. In addition, throughout the specification, themeaning of “a,” “an,” and “the” include singular and plural references.

References to the term “set” (e.g., “a set of items”), as used herein,unless otherwise noted or contradicted by context, is to be construed asa nonempty collection comprising one or more members or instances.

Referring to FIG. 1, the environment 100 includes a plurality of objects102 collected in a designated area 104, a robotic manipulator 106located in the designated area 104, a set of antennas 108 positionedproximate to the plurality of objects 102 in the designated area 104,and one or more computer systems 110 configured to perform variousoperations described herein. In an embodiment, the plurality of objects102 can be comprised of objects having a plurality of different objecttypes, each type having a different property than the other objecttypes. For example, the plurality of objects 102 includes a first set ofobjects of a first type and a second set of objects of a second type.The objects of the plurality of objects 102 may differ in type based onphysical property of the object, such as a size, a shape, a weight, afunction, or a color of the object, a density of the object, a rigidityof the object, and the like, by way of non-limiting example. In someembodiments, the plurality of objects 102 may have a different typebased on a content of the object. For instance, the plurality of objects102 may be containers that include a first set of containers containinga first type of object and a second set of containers containing asecond type of object.

Each object 112 of the plurality of objects 102 has a correspondingoperation to be performed involving the object, the particular operationto be performed based on the type of the object 112. The roboticmanipulator 106 is configured to successively extract an object 114 fromthe collected plurality of objects 102 and manipulate the object 114extracted based on the operation to be performed for the object.However, the robotic manipulator 106 does not recognize the type of theobject 114 when the object 114 is located among the collected pluralityof objects 102. Each object of the plurality of objects 102 is equippedwith a radiofrequency (RF) transponder 116 configured to emit an RFsignal encoding an identifier corresponding to the type of object on orin which the transponder 116 is provided.

Each transponder 116 is embodied as a tag, sticker, label, etc., thatincludes an antenna for receiving and transmitting wireless signals, andan integrated circuit configured to encode an identifier in an RF replysignal 118 transmitted by the antenna. The integrated circuit may behardwired (e.g., as a field programmable gate array) with informationspecifying the identifier to be encoded in the RF signal transmitted, ormay include or be coupled to non-volatile memory (e.g., read-onlymemory, solid-state memory) storing information specifying theidentifier to be encoded in the RF signal transmitted. The transponders116, in some embodiments, are RF identification tags that are affixed toan exterior surface of the object, embedded within a surface of theobject, or provided in an interior compartment of the object.

In at least some embodiments, the RF transponder 116 is a passivetransponder not equipped with a battery and instead including circuitrythat collects power from an RF interrogation signal for powering theintegrated circuit to emit an RF reply signal encoding the identifier.In some embodiments, the transponder 116 may be an active transponderequipped with a battery that powers the integrated circuitry to emit anRF signal encoding the identifier. In such implementations, the activetransponder may be configured to periodically emit the RF signal, ordetect an RF interrogation signal and emit the RF signal in response. Apassive transponder may be preferable to an active transponder in thecontext of the present disclosure to facilitate synchronization of theRF signals transmitted by the transponders 116 of the plurality ofobjects 102. For example, active transponders may periodically transmitRF signals such that a first active transponder may transmit RF signalswith different timing (e.g., a different frequency, out of phase) than asecond active transponder. In another embodiment, the transponder 116may be a semi-passive transponder equipped with a battery, but whichdoes not transmit an active signal.

In the context of the present disclosure, transmission of RF signals atdifferent timings may make correlation of signal characteristicsdifficult. By contrast, passive transponders transmit RF reply signalsin response to an RF interrogation signal, which can promote correlationin time of signal characteristics thereof.

The computer system 110 is communicatively coupled with the set ofantennas 108 and configured to obtain signal information 120 regardingthe RF signals 118, including the RF reply signal 118 a, received by theset of antennas 108. The computer system 110 performs analysis 122involving the signal information 120 and identifies the type of theobject 114 extracted or manipulated by the robotic manipulator 106 basedon a result of the analysis 122. The RF signals 118 obtained and thesignal information 120 associated thereof are obtained in connectionwith extraction or manipulation of the object 114 by the roboticmanipulator 106. The analysis 122 involves comparing a signalcharacteristic of the RF signals 118 emitted by the transponders 116 ofthe plurality of objects 102 and the object 114 to identify a signal 118a emitted by a transponder 116 a of the object 114.

The computer system 110 determines an identifier encoded in the RF replysignal 118 a from the transponder 116 a of the object 114 identified inperforms additional operations as a result of determining theidentifier. In some implementations, the computer system 110 maydetermine information 124 regarding one or more operations to beperformed by the robotic manipulator 106 or other machinery or devicesin or around the environment 100. For example, the computer system 110may send the information 124 causing the robotic manipulator 106 orother devices to perform operations corresponding to the identifier ofthe transponder 116 a, such as information specifying a location atwhich the robotic manipulator 106 should place the object 114. Thecomputer system 110 may, as another example, send informationcorresponding to or specifying the identifier, such as informationindicating the type of the object 114. As a further example, thecomputer system 110 may determine a device or machinery to which to sendthe information 124 based on the identifier of the transponder 116 a.

The plurality of objects 102 may be containers, such as boxes, crates,barrels, bags, or other receptacle having a structure in which content(e.g., other objects, materials, items, goods) are contained. In suchsituations, the content contained in the objects 102 may not be apparentwithout further inspection of the content or optical scanning of a labelon an exterior of the objects 102. According to the present disclosure,an operation to be performed corresponding to the content of the object114, such as a destination thereof, may be may be quickly and accuratelydetermined as the object 114 is extracted based on the identifier of theRF signals 118 emitted. The environment 100 may be a located in amanufacturing facility and the plurality of objects 102 may be parts orcomponents used in a manufacturing process performed in themanufacturing facility. According to the present disclosure, each object114 extracted from the collected plurality of objects 102 can beidentified and assembled, positioned, etc., based on the RF signalidentifier to improve automation of the manufacturing process. Theplurality of objects 102 may be collected in the designated area 104which may be a designated volume or area allocated for collection ofobjects. For instance, the designated area 104 may be a container orother partially enclosed volume having sidewalls extending upwardly anddefining a cavity in which the plurality of objects 102 are to belocated for processing. As another example, the designated area 104 maybe a platform or demarcated area on a floor allocated for processing theplurality of objects 102.

The robotic manipulator 106 may include a movable structure equippedwith an end-effector 128 at a distal end of the structure for securingand extracting the object 114 from the plurality of objects 102. Theend-effector 128 is a mechanism for selectively securing the object 114to the distal end to facilitate extraction, transport, and manipulationof the object 114. Non-limiting examples of the end-effector 128 includea selectively openable and closable gripper, a hook, a suction mechanismfor selectively securing the object 114 using a vacuum seal, anelectromagnetic device, or other such mechanism. The end-effector 128may be particularly configured to secure, grasp, hold, etc., theparticular design of the objects 102. The movable structure may be, forexample, an arm comprising a number of segments and joints thatfacilitate relative movement between adjacent segments. As anotherexample, the movable structure of the robotic manipulator 106 may be aframe having a cable that is selectively extendable to position theend-effector 128 to secure and grasp the object 114, and that isselectively retractable to extractor separate the object 114 from theremaining plurality of objects 102.

The robotic manipulator 106 may be movable relative to a position of thedesignated area 104 to relocate the object 114 based on the RF signalidentifier thereof. The robotic manipulator 106 shown in the environment100 is located on a ceiling of the designated area 104; however, therobotic manipulator 106 is not so limited. The robotic manipulator 106may be configured to move along floors or walls of the designated area,if desired. The robotic manipulator 106 may be part of a mobile robotequipped with legs, wheels, treads, or other motive devices forindependent movement of the mobile robot. Additional details regardingthe robotic manipulator 106 are discussed with respect to FIG. 2 andelsewhere herein.

The set of antennas 108 are each located in a fixed position proximateto the designated area 104. The computer system 110 causes the set ofantennas 108 to emit RF interrogation signals 130 having a sufficientpower to cause the transponders 116 of the plurality of objects 102 andthe transponder 116 a of the object 114 to generate and emit the RFresponse signals 118 and 118 a. The set of antennas 108 are positionedaround the designated area 104 such that the RF interrogation signals130 reach every transponder 116 of the plurality of objects in thedesignated area 104.

In some embodiments, the set of antennas 108 may be a plurality ofantennas symmetrically arranged around the designated area 104. In theenvironment 100 shown, for example, a first antenna 108 a is located ona first side of the designated area 104 and a second antenna 108 b islocated on a second side of the designated area 104 opposite to thefirst side. The designated area 104 may have a symmetric shape, such asa circular or rectangular shape, and a third antenna and a fourthantenna (not shown) may be positioned at opposite sides of thedesignated area 104 halfway between the first antenna 108 a and thesecond antenna 108 b. In some embodiments, the set of antennas 108 maybe positioned above the designated area 104, such as projecting downfrom a ceiling over the designated area 104, or being affixed tosupports above and around the designated area 104. It is noted that theset of antennas 108 are not located on or fixed to the roboticmanipulator 106. Instead, the robotic manipulator 106 moves the object114 relative to the set of antennas 108 within the environment 100.Changes in a signal characteristic of the RF response signals 130relative to the fixed set of antennas 108 are detected to identify thetransponder 116 a by the identifier encoded.

The antennas 108 may include one or more types of antenna. For instance,the one or more antennas 108 may include a parabolic antenna, a dipoleantenna, a circular antenna, a circular polarization antenna, acloverleaf antenna, or other similar antenna that can receive ortransmit election regular waves of one or more polarizations in that oneor more desired frequencies. Each of the one or more antennas 108 may beindividually operable by the computer system, via a reader 302, toselectively send and receive RF signals.

In yet another embodiment, each object of the plurality of objects 102is equipped with a real-time location system (RTLS) transponderconfigured to emit ultra-wideband signals, WiFi signals, or infraredsignals which are received by the antennas 108.

The environment 100 may include electromagnetic shielding 132 at leastpartially surrounding the designated area 104 to shield the designatedarea 104 from external electromagnetic interference and prevent RFsignals emitted from the set of antennas 108 or the transponders 116from interfering with nearby equipment. The electromagnetic shielding132 may be, for example, a Faraday cage around, above, and/or below thedesignated area 104. In some embodiments, the environment 100 mayinclude a plurality of designated areas 104 that are eachelectromagnetically shielded from other designated areas 104 to preventinterference of RF signals therebetween.

The environment 100 may include one or more sensors, such as a camera134, to detect a presence of the plurality of objects 102 or otherconditions in the designated area 104. The camera 134 shown in theenvironment 100 is positioned to capture images of the designated area104. The computer system 110 may receive images or video obtained by thecamera 134 and cause emission of the RF interrogation signals 130 andobtain the signal information 120 based on the RF reply signals 118 fromthe transponders 116. The computer system 110 may use imaging capturedby the camera 134 to determine time periods when the robotic manipulator106 is moving the object 114 from the designated area 104, and correlatethe signal information 120 obtained relative to the movement of theobject 114. The computer 110 may analyze the imaging captured by thecamera 134 in real-time, or in near real-time.

FIG. 2 shows a schematic diagram 200 of the computer system 110 and therobotic manipulator 106 operating in the environment 100 according toone or more embodiments. As discussed herein, the robotic manipulator106 and robots, in general, may take any of a wide variety of forms. Therobotic manipulator 106 may include at least one body, such as aplurality of connected segments that are movable relative to each otherand connected by joints. The robotic manipulator 106 may include acontrol subsystem 202 that includes at least one processor 204, at leastone non-transitory tangible computer- and processor-readable datastorage 206, and at least one bus 208 to which the at least oneprocessor 204 and the at least one non-transitory tangible computer- orprocessor-readable data storage 206 are communicatively coupled.

The at least one processor 204 may be any logic processing unit, such asone or more microprocessors, central processing units (CPUs), digitalsignal processors (DSPs), graphics processing units (GPUs),application-specific integrated circuits (ASICs), programmable gatearrays (PGAs), programmed logic units (PLUs), and the like. At least oneprocessor 204 may be referred to herein by the singular, but may be twoor more processors.

Robotic manipulator 106 may include a communications subsystem 210communicatively coupled to (e.g., in communication with) the bus(es) 208and provides bi-directional communication with other systems (e.g.,systems external to the robotic manipulator 106) via a network ornon-network communication channel, such as one or more network(s) 207described herein. The communications subsystem 210 may include one ormore buffers. The communications subsystem 210 receives and sends datafor the robotic manipulator 106, such as sensory information andactuation information. The one or more networks 207 may include wiredand/or wireless networks, a local area network (LAN), a mesh network, orother network suitable to convey medications and information describedherein. In some embodiments, the computer system 110 and the roboticmanipulator 106 may not communicate over the one or more networks 207.

The communications subsystem 210 may be any circuitry effectingbidirectional communication of processor-readable data, andprocessor-executable instructions, for instance radios (e.g., radio ormicrowave frequency transmitters, receivers, transceivers),communications ports and/or associated controllers. Suitablecommunication protocols include FTP, HTTP, Web Services, SOAP with XML,WI-FI compliant, BLUETOOTH compliant, cellular (e.g., GSM, CDMA), andthe like.

Robotic manipulator 106 may include an input subsystem 212. In any ofthe implementations, the input subsystem 212 can include one or moresensors that measure conditions or states of robotic manipulator 106,and/or conditions in the environment 100 in which the roboticmanipulator 106 operates. Such sensors include cameras or other imagingdevices (e.g., responsive in visible and/or nonvisible ranges of theelectromagnetic spectrum including for instance infrared andultraviolet), radars, sonars, touch sensors, pressure sensors, loadcells, microphones, meteorological sensors, chemical sensors, or thelike. Such sensors include internal sensors, pressure sensors, loadcells, strain gauges, vibration sensors, microphones, ammeter,voltmeter, or the like. In some implementations, the input subsystem 212includes receivers to receive position and/or orientation information.For example, a global position system (GPS) receiver to receive GPSdata, two more time signals for the control subsystem 202 to create aposition measurement based on data in the signals, such as, time offlight, signal strength, or other data to effect (e.g., make) a positionmeasurement. Also, for example, one or more accelerometers, gyroscopes,and/or altimeters can provide inertial or directional data in one, two,or three axes. In some implementations, the input subsystem 212 includesreceivers to receive information that represents posture. For example,one or more accelerometers or one or more inertial measurement units canprovide inertial or directional data in one, two, or three axes to thecontrol subsystem 202 to create a position and orientation measurements.The control subsystem 202 may receive joint angle data from the inputsubsystem 212 or the manipulation subsystem described herein.

Robotic manipulator 106 may include an output subsystem 214 comprisingoutput devices, such as, speakers, lights, and displays. The inputsubsystem 212 and output subsystem 214, are communicatively coupled tothe processor(s) 204 via the bus(es) 208.

Robotic manipulator 106 may include a propulsion or motion subsystem 216comprising motive hardware 217, such as motors, actuators, drivetrain,wheels, tracks, treads, and the like to propel or move the roboticmanipulator 106 within a physical space and interact with it. Thepropulsion or motion subsystem 216 may comprise of one or more motors,solenoids or other actuators, and associated hardware (e.g., drivetrain,wheel(s), treads), to propel robotic manipulator 106 in a physicalspace. For example, the propulsion or motion subsystem 216 may include adrive train and wheels, or may include legs independently operable viaelectric motors. Propulsion or motion subsystem 216 may move the body ofthe robotic manipulator 106 within the environment 100 as a result ofmotive force applied by the set of motors 306.

Robotic manipulator 106 may include a manipulation subsystem 218, forexample comprising one or more arms, end-effectors, associated motors,solenoids, other actuators, gears, linkages, drive-belts, and the likecoupled and operable to cause the arm(s) and/or end-effector(s) to movewithin a range of motions. For example, the manipulation subsystem 218causes actuation of the robotic arm 304 or other device for interactingwith objects or features in the environment 100. The manipulationsubsystem 218 is communicatively coupled to the processor(s) 204 via thebus(es) 208, which communications can be bi-directional oruni-directional.

Components in robotic manipulator 106 may be varied, combined, split,omitted, or the like. For example, robotic manipulator 106 could includea pair of cameras (e.g., stereo pair) or a plurality of microphones.Robotic manipulator 106 may include one, two, or three robotic arms ormanipulators associated with the manipulation subsystem 218. In someimplementations, the bus(es) 208 include a plurality of different typesof buses (e.g., data buses, instruction buses, power buses) included inthe at least one body 314. For example, robotic manipulator 106 mayinclude a modular computing architecture where computational resourcesdevices are distributed over the components of robotic manipulator 106.In some implementations, a robot (e.g., robotic manipulator 106), couldhave a processor in an arm and data storage in a body or frame thereof.In some implementations, computational resources are located in theinterstitial spaces between structural or mechanical components of therobotic manipulator 106.

The at least one data storage 206 includes at least one non-transitoryor tangible storage device. The at least one data storage 206 caninclude two or more distinct non-transitory storage devices. The datastorage 206 can, for example, include one or more a volatile storagedevices, for instance random access memory (RAM), and/or one or morenon-volatile storage devices, for instance read only memory (ROM), Flashmemory, magnetic hard disk (HDD), optical disk, solid state disk (SSD),and the like. A person of skill in the art will appreciate storage maybe implemented in a variety of non-transitory structures, for instance aread only memory (ROM), random access memory (RAM), a hard disk drive(HDD), a network drive, flash memory, digital versatile disk (DVD), anyother forms of computer- and processor- readable memory or storagemedium, and/or a combination thereof. Storage can be read only orread-write as needed. Further, volatile storage and non-volatile storagemay be conflated, for example, caching, using solid-state devices ashard drives, in-memory data processing, and the like.

The at least one data storage 206 includes or storesprocessor-executable instructions and/or processor-readable data 220associated with the operation of robotic manipulator 106 or otherdevices. Here, processor-executable instructions and/orprocessor-readable data may be abbreviated to processor-executableinstructions and/or data.

The execution of the processor-executable instructions and/or data 220cause the at least one processor 204 to carry out various methods andactions, for example via the motion subsystem 216 or the manipulationsubsystem 218. The processor(s) 204 and/or control subsystem 202 cancause robotic manipulator 106 to carry out various methods and actionsincluding receiving, transforming, and presenting information; moving inthe environment 100; manipulating items; and acquiring data fromsensors. Processor-executable instructions and/or data 220 can, forexample, include a basic input/output system (BIOS) 222, an operatingsystem 224, drivers 226, communication instructions and data 228, inputinstructions and data 230, output instructions and data 232, motioninstructions and data 234, and executive instructions and data 236.

Exemplary operating systems 224 include ANDROID™, LINUX®, and WINDOWS®.The drivers 226 include processor-executable instructions and/or datathat allow control subsystem 202 to control circuitry of roboticmanipulator 106. The processor-executable communication instructionsand/or data 228 include processor-executable instructions and data toimplement communications between robotic manipulator 106 and an operatorinterface, terminal, a computer, or the like. The processor-executableinput instructions and/or data 230 guide robotic manipulator 106 toprocess input from sensors in input subsystem 212. Theprocessor-executable input instructions and/or data 230 implement, inpart, the methods described herein.

The processor-executable output instructions and/or data 232 guiderobotic manipulator 106 to provide information that represents, orproduce control signal that transforms, information for display. Theprocessor-executable motion instructions and/or data 234, as a result ofexecution, cause the robotic manipulator 106 to move in a physical spaceand/or manipulate one or more items. The processor-executable motioninstructions and/or data 234, as a result of execution, may guide therobotic manipulator 106 in moving within its environment via componentsin propulsion or motion subsystem 216 and/or manipulation subsystem 218.The processor-executable executive instructions and/or data 236, as aresult of execution, guide the robotic manipulator 106 the instantapplication or task for devices and sensors in the environment 100. Theprocessor-executable executive instructions and/or data 236, as a resultof execution, guide the robotic manipulator 106 in reasoning, problemsolving, planning tasks, performing tasks, and the like.

The instructions 220, as a result of execution by the processor(s) 204,may cause the robotic manipulator 106 to process the plurality ofobjects 102 by successively extracting each object (i.e., as the object114) from the designated area 104. The instructions 220 may furthercause the processor(s) 204 to process input information received via theinput subsystem 212, such as video data captured by a camera ormeasurements by one or more sensors, and recognize the presence of theplurality of objects 102 located in the designated area 104 based on theinput information received. Instructions 220 may also cause the roboticmanipulator 106 to, while in possession of the object 114 extracted,perform a set of movements and deposit the object 114 in a certainlocation. In some embodiments, the robotic manipulator 106 may, while inpossession of the object 114 extracted, receive a communication from thecomputer system 110 and deposit the object 114 and a location indicatedin the communication received. In some embodiments, the roboticmanipulator 106 operates independently of the computer system 110 whenprocessing the plurality of objects 102 and may deposit each object 114extracted in a predetermined area or location (e.g., conveyor belt,receptacle).

The computer system 110 includes one or more processors 238, memory 240,and a communication interface 242. The memory 240 is computer-readablenon-transitory data storage that stores a set of computer programinstructions that the one or more processors 238 may execute toimplement one or more embodiments of the present disclosure. The memory240 generally includes RAM, ROM and/or other persistent ornon-transitory computer-readable storage media, such as magnetic harddrives, solid state drives, optical drives, and the like. The memory 240may store an operating system comprising computer program instructionsuseable by the one or more processors 238 in the general administrationand operation of the computer system 110.

The communication interface 242 includes one or more communicationdevices for transmitting communications and receiving communications viathe network 207. The one or more communication devices of thecommunication interface may include wired communication devices and/orwireless communication devices. Non-limiting examples of wirelesscommunication devices include RF communication adapters (e.g., Zigbeeadapters, Bluetooth adapters, ultra-wideband adapters, Wi-Fi adapters)using corresponding communication protocols, satellite communicationtransceivers, free-space optical communication devices, cellular networktransceivers, and the like. Non-limiting examples of wired communicationdevices include serial communication interfaces (e.g., RS-232, UniversalSerial Bus, IEEE 139), parallel communication interfaces, Ethernetinterfaces, coaxial interfaces, optical fiber interfaces, and power-linecommunication interfaces. The computer system 110 may transmitinformation via the communication interface 242 to the roboticmanipulator 106 or other robots, devices, machinery, etc., based on theidentifier of the transponder 116 a, such as information indicating anoperation to be performed involving the object 114.

The computer system 110 and the robotic manipulator 106 may communicateinformation over the one or more networks 207 regarding the operationsdescribed with respect to the environment 100. Referring to FIG. 1, thecomputer system 110 may cause the set of antennas 108 to emit the RFinterrogation signals 130 in response to detecting that roboticmanipulator 106 is about to begin processing the plurality of objects102. As a result of identifying the identifier emitted by thetransponder 116 a of the object 114, the computer system 110 may send acommunication over the one or more networks 207 to the roboticmanipulator 106 indicating, for example, a location to place the object114. In some implementations, the computer system 110 may send acommunication over the one or more networks 207 to another device in oraround the environment 100 indicating an operation involving the object114.

In some embodiments, the computer system 110 and the robotic manipulator106 may not communicate over the one or more networks 207. For example,the robotic manipulator 106 may operate autonomously and independent ofthe computer system 110 to successively extract each of the plurality ofobjects 102 from the designated area 104. The computer system 110 maydetect or observe operations of the manipulator 106, e.g., via thecamera 134 and/or other sensors, and cause devices, machinery, or robotsother than the robotic manipulator 106, to perform operations involvingeach object 114 extracted. As an example, the computer system 110 maydetect the identifier of each object 114 upon extraction and control aseries of conveyors to deliver the object 114 to a desired locationcorresponding to the identifier.

FIG. 3 shows a schematic diagram 300 of a system for performingoperations in connection with extraction of the plurality of objects 102according to one or more embodiments. The schematic diagram 300 includesthe computer system 110 which is electrically communicatively coupled tothe set of antennas 108. The computer system 110 is configured to causethe set of antennas 108 to emit the RF interrogation signal 130 inconnection with extraction, by the robotic manipulator 106, of theplurality of objects 102 from the designated area 104.

As shown in the schematic diagram 300, the computer system 110 may beelectrically communicatively coupled to the set of antennas 108 via areader 302. The reader 302 receives a signal from the computer system110, via a wired or wireless connection, instructing the reader 302 togenerate an electrical signal that causes the set of antennas 108 toemit the RF interrogation signal 130. The reader 302 may be programmed,hardwired, or otherwise configured to generate an electrical signalhaving certain characteristics to cause the transponders 116 to emit anRF reply signal. Such characteristics include a signal power level oramplitude sufficient to energize the passive RF transponders 116 in theenvironment 100. The signal characteristics also include a frequencythat is particular to the transponders 116. In some embodiments, thereader 302 is configured or programmed to generate frequencies in a highfrequency range (e.g., between 3 to 30 MHz) and receive RF responsesignals from the transponders 116 having one or more correspondingfrequencies. The transponders 116, for example, may emit an RF replysignal 118 having a frequency of 13.56 MHz. However, other frequencyranges may be implemented for the reader 302 and the correspondingtransponders 116 based on characteristics of the environment 100, suchas its size, geometry, composition of walls, floor, ceiling enclosingthe environment 100, or other considerations. In some embodiments, thetransponders 116 and the readers 302 thereof may utilize nearfieldcommunication (NFC) instead of or in connection with RFID technology.Other frequency ranges may be used in the context of the presentdisclosure, such as low-frequency RFID having a frequency range between30 KHz to 300 KHz, or ultrahigh frequency RFID having a frequency rangebetween 300 MHz to 3 GHz.

The reader 302 may alternately emit the RF interrogation signal 130 andreceive RF response signals from the transponders 116. For example, thereader 302 may generate an electric signal for a first time period tocause emission of the RFID interrogation signal 130 by the set ofantennas 108. After the first time period, the reader 302 may wait for asecond time period before generating another electric signal. During thesecond time period, the reader 302 may receive a plurality of replysignals (i.e., the RF reply signal 118), via the set of antennas 108,having a corresponding frequency in response.

The RF reply signal encodes an identifier of the transponder 116 thatemitted the RF reply signal. The reader 302 generates signal informationregarding the RF reply signals received and provides the signalinformation to the computer system 110. The signal information includes,for each RF reply signal received, information specifying the identifierencoded in the RF reply signal and information regarding a signalcharacteristic of the RF reply signal received. The signalcharacteristic may be a signal strength or measure of power level of theRF reply signal, such as a Received Signal Strength Identifier (RSSI),Total Isotropic Sensitivity (TIS), Time of Flight (ToF), and the like.The signal information generated in provided by the reader 302 mayinclude other information regarding the RF reply signals received, suchas temporal information indicating a time at which the RF reply signalor signals were received or temporal information indicating a time atwhich the preceding RF interrogation signal 130 was transmitted.

The reader 302 is shown as being separate from the computer system 110in FIG. 3; however, the present disclosure is not so limited. The reader302 may be integrated with or part of the computer system 110 in someembodiments. Each reader 302 has a fixed number of ports for connectingantennas, each port connecting to a single antenna of the set ofantennas 108. In some embodiments, there may be a plurality of readers302 coupled to the computer system 110 based on the number of antennas108 implemented.

As also shown in the system diagram 300, the computer system 110 iscoupled to memory 240. The computer system 110 may store the signalinformation received from the reader 302 in the memory 240 and analyzethe signal information to identify the identifier of each object 114extracted. The memory 240 may also store operation informationassociated with each identifier specifying a set of operations to beperformed for each object 114 extracted having the correspondingidentifier, as described elsewhere herein.

The computer system 110 may also be communicatively coupled to thecamera 134, as shown in the system diagram 300, for receiving videoimaging the environment 100. The computer system 110 may receive video,captured by the camera 134, imaging a state of the environment 100, suchas video depicting a presence of the plurality of objects 102 to beprocessed in the designated area 104, or depicting operation of therobotic manipulator 106 to extract the object 114 from the collectedplurality of objects 102. The computer system 110 may control, based onvideo captured by the camera 134, emission of the RF interrogationsignal(s) 130 based on a state of the designated area 104 and/or therobotic manipulator 106. In some embodiments, the computer system 110may determine signal information received via the reader 302 thatcorresponds to time periods during which the robotic manipulator 106 isoperating to extract the object 114 based on video captured and receivedfrom the camera 134. In some embodiments, the computer system 110 may becoupled to one or more sensors other than or in addition to the camera134 to provide feedback indicating a state of the environment 100.

In some embodiments, the robotic manipulator 106 may provide informationto the computer system 110 regarding a state of the environment 100. Forexample, the robotic manipulator 106 may provide a signal or informationto the computer system 110 indicating detection by the roboticmanipulator 106 of the presence of a plurality of objects 102 to beprocessed in the designated area 104. As another example, the roboticmanipulator 106 may provide a signal or information indicating that therobotic manipulator 106 is extracting the object 114 or will extract theobject 114 at a designated time in the future. As described above withrespect to the camera 134, the computer system 110 may control emissionof the RF interrogation signal(s) 130 or correlate signal information ofreceived RF signals 118 with extraction of the object 114 based onsignals or information received from the robotic manipulator 106.

The computer system 110 may be electrically communicatively coupled withone or more robots 304 other than the robotic manipulator 106 forcausing performance of operations involving the object 114 extracted. Inresponse to identifying the identifier of the transponder 116 a of theobject 114 extracted, the computer system 110 may send a communication,e.g., via the one or more networks 207 or via other communicationprotocol (Bluetooth, Zigbee), to a robot 304 indicating a set ofoperations to be performed involving the object 114. For instance, thecommunication from the computer system 110 may include instructionscausing the robot 304 to retrieve the object 114 from a specifiedlocation or from the robotic manipulator 106, and deliver the object 114to a specified location. As another example, the communication mayinclude instructions that cause the robot 304 to assemble the object 114with one or more other objects as part of a manufacturing process.

The computer system 110 may be electrically communicatively coupled tointeract with and control devices 306, such as motors, actuators,valves, etc., for causing performance of operations involving the object114 extracted. For instance, the computer system 110 may include or becoupled to control motors of a series of conveyors 308 to relocate theobject 114 extracted from the environment 100 to a locationcorresponding to the identifier of the transponder 116 a of the object114.

FIG. 4 shows a process 400 performed by the computer system 110 toidentify the object 114 extracted from the plurality of objects 102according to one or more embodiments. In connection with performance ofthe process 400, the computer system 110 may determine that a definedcriterion is satisfied with respect to the environment 100. For example,the defined criterion may be satisfied in response to detection of thepresence of the plurality of objects 102 is detected in the designatedarea 104. As another example, the defined criterion may be satisfied inresponse to an indication that the robotic manipulator 106 is processingor is about to begin processing the plurality of objects 102. Thecomputer system 110 sends an electric signal, via the reader 302,causing the set of antennas 108 to emit the RF interrogation signal 130.

In response, the set of antennas 108 receive a plurality of RF replysignals 404 generated and emitted by the transponders 116 of theplurality of objects 102, including the transponder 116 a of the object114. The computer system 110 receives, via the reader 302, signalinformation 406 corresponding to the plurality of RF reply signals 404.The signal information 406 indicates information regarding each RF replysignal of the plurality of RF reply signals 404. Specifically, thesignal information 406 indicates a signal characteristic of the RF replysignal (e.g., RSSI), and identifier encoded in the RF reply signal, andmay indicate temporal information regarding a time at which the RF replysignal was received or time at which the corresponding RF interrogationsignal 130 was emitted.

Each set of signal information 406 may include information regardingsignals received by a plurality of antennas 108. For example, a firstantenna and the second antenna may be coupled to the reader 302, whichgenerates signal information 406 that includes first informationregarding an RF reply signal received by the first antenna and secondinformation regarding an RF reply signal received by the second antenna.The first information and the second information may specify, for theplurality of RF reply signals 404, the same set of identifiers anddifferent information regarding signal characteristics as a result ofthe first antenna being positioned at a different location around thedesignated area 104 then the second antenna. As shown in the environment100, for example, the antenna 108 a is located on a first side of thedesignated area 104 whereas the antenna 108 b is located on a secondside of the designated area 104 opposite to the first side.

The computer system 110 may obtain several sets of the signalinformation 406 in connection with extraction of the object 114 fromamong the plurality of objects 102 by the robotic manipulator 106, eachset of signal information 406 corresponding to a plurality of RF replysignals 404. The computer system 110 analyzes 408 the signal information406 to detect a particular identifier 410 encoded in the plurality of RFreply signals 404 that is associated with a change in the signalcharacteristic over time. For instance, the computer system 110 mayidentify the particular identifier 410 as an identifier in a first setof signal information and a second set of signal information that isassociated with different signal characteristic values. It is noted thatthe plurality of objects 102 may include objects of the same type as theobject 114 and having a transponder 116 configured to emit the sameidentifier. The computer system 110 is configured to identify the object114 emitting the RF response signal encoding the particular identifier410 among other similar objects as discussed below.

In response to determining that the object 114 is associated with theparticular identifier 410, the computer system 110 may determine one ormore operations to be performed involving the object 114. Each object ofthe plurality of objects 102 has a transponder 116 that emits an RFreply signal encoding an identifier corresponding to a classification ofthe object, such as the type of object or the content of the object, asdescribed above with respect to FIG. 1 and elsewhere herein. Theplurality of objects 102 include a first set of objects of a firstclassification that have transponders transmitting signals encoding afirst identifier. The plurality of objects 102 also include a second setof objects of a second classification that have transponderstransmitting signals encoding a second identifier.

The memory 240 may store a data structure 412 indicating operations tobe performed for each object classification. In the data structure 412,a set of operations may be defined, referenced, or associated with eachobject classification. A first set of operations may be associated withobjects corresponding to the first identifier and a second set ofoperations may be associated with objects corresponding to the secondidentifier, the second set of operations including one or moreoperations different than the first set of operations. The set ofoperations for an object classification may, by way of non-limitingexample, include information regarding a destination for the object; aseries of operations to be performed by certain machinery, robots, ordevices; which machinery, robots, or devices are to perform theoperations; parameters for performing the operations; and/orcommunications to be sent. In response to identifying that an object 114extracted by the robotic manipulator 106 is of a particularclassification, the computer system 110 may reference the data structure412 to obtain operation instructions 414 that the computer system 110implements to cause performance of the operations.

FIG. 5 shows a state 500 of the environment 100 during a time periodprior to extraction of the plurality of objects 102 by the roboticmanipulator 106 from the designated area 104 according to one or moreembodiments. In the state 500, the computer system 110 obtains signalinformation regarding RF signals emitted by the transponders 116 of theplurality of objects 102. The computer system 110 may obtain the signalinformation for the state 500 of FIG. 5 in response to determining thatextraction by the robotic manipulator 106 will soon commence. In someimplementations, the computer system 110 may obtain signal informationin response to detecting the presence of the plurality of objects 102 inthe designated area 104 based on video received from the camera 134 orother sensor. In some implementations, the computer system 110 mayobtain the signal information based on an indication that the roboticmanipulator 106 is about to process the plurality of objects 102—forexample, based on a communication from the robotic manipulator 106 orbased on a communication from another system.

The computer system 110 causes the set of antennas 108 to emit first RFinterrogation signal(s) 502 over a time period T1. The transponders 116,in response, each emit an RF reply signal 504 over a time period T2after the time period T1, the RF reply signal 504 encoding an identifiercorresponding to the classification, type, content, etc., of the objectof the transponder. The computer system 110 receives the RF replysignal(s) 504 emitted by each transponder 116 via the set of antennas108 and generates signal information regarding the RF reply signals 504received. The computer system 110, via the reader 302, generates a setof signal information 506 corresponding to the RF reply signals 504received by the first antenna 108 a and generates a set of signalinformation 508 corresponding to the RF reply signals 504 received bythe second antenna 108 b.

The sets of signal information 506 and 508 are data array structuresthat include a first collection of elements 510 storing identifiersencoded in the RF reply signals 118 received in response to the RFinterrogation signal 502. The sets of signal information 506 and 508also include a second collection of elements 512 storing valuesrepresenting a detected signal characteristic of the RF reply signals118 received in response to the RF interrogation signal 502. The sets ofsignal information 506 and 508 may store or have associated therewithelements for other information. For example, the signal information 506may indicate that the information stored therein is based on RF replysignals 118 received by the first antenna 108 a, and the signalinformation 508 may indicate that the information stored therein isbased on RF reply signals 118 received by the second antenna 108 b. Thesignal information 506 and 508 may also include temporal informationindicating a time at which the RF reply signals 118 were received, atime at which the RF interrogation signal 502 was emitted, or otherinformation indicating a time period for the state 500.Although the setsof signal information 506 and 508 are shown as being separate dataarrays, the sets of signal information 506 and 508 may be combined intoa single data array in which the respective elements of each array ispreserved to indicate the corresponding antenna for element and temporalinformation of the data.

FIG. 6 shows a state 600 of the environment 100 during a time periodafter the state 500 according to one or more embodiments. In the state600, signal information is obtained regarding RF reply signals receivedby the set of antennas 108 during extraction of the object 114 of theplurality of objects 102 in the designated area 104. The computer system110 may obtain the signal information for the state 600 of FIG. 6 duringextraction of the object 114. In particular, the state 600 represents atime period in which the end-effector 128 possesses the object 114, andthe robotic manipulator 106 is actively moving the object 114 relativeto the plurality of objects 102 (e.g., in an upward direction 601). Insome implementations, computer system 110 may detect that the roboticmanipulator 106 is extracting the object 114 based on video receivedfrom the camera 134 or measurements by one or more other sensors. Insome implementations, the computer system 110 may obtain the signalinformation in the state 600 in response to a communication or othersignal indicating that the robotic manipulator 106 is extracting orbeginning to extract the object 114.

In the state 600, the computer system 110 causes the set of antennas toemit second RF interrogation signal(s) 604 over a time period T3 afterthe time period T2 of the state 500. In response, the transponders 116each emit an RF reply signal 604 over a time period T4 after the timeperiod T3. As described with respect to the state 500, the RF replysignals 604 encode an identifier corresponding to the classification ofthe corresponding object. The RF reply signal 604 a encodes anidentifier corresponding to the classification of the object 114. Thecomputer system 110 receives the RF reply signal(s) 604 (including theRF reply signal 604 a) via the set of antennas 108 and generates signalinformation regarding the RF reply signals 604 received. The computersystem 110, via the reader 302, generates a set of signal information606 corresponding to the RF reply signals 604 received by the firstantenna 108 a and generates a set of signal information 608corresponding to the RF reply signals 604 received by the second antenna108 b.

The set of signal information 606 and 608 are data array structuressubstantially similar to the sets of signal information 506 and 508described with respect to the state 500. The identifiers stored in thefirst collection of elements 510 of the signal information 606 and 608are identical to the identifiers stored in the sets of signalinformation 506 and 508. The values stored for the second collection ofelements 512 of the signal information 606 and 608 are similar to thosein the sets of signal information 506 and 508, with the exception of thevalues representing the detected signal characteristic of the RF replysignal 604 a. In particular, the signal information 606 and 608 includevalues of the signal characteristic, such as RSSI, for the transponder116 a of the object 114 that are different relative to the values of thesignal characteristic stored in the signal information 506 and 508 forthe transponder 116 as a result of a difference in the physical locationof the object 114 relative to each of the antennas 108 a and 108 b.

Examining the stored values of the signal information 506 and 606, thecomputer system 110 may detect that a value for the signalcharacteristic in an element 614 of the signal information 606 isdifferent than a value for the signal characteristic in an element 514of the signal information 506. The computer system 110 may also detectthat a value for the signal characteristic in an element 616 of thesignal information 608 is different than a value for the signalcharacteristic in an element 516 of the signal information 508.

The computer system 110 may store instructions including logic to detectthe difference or differences in the value between corresponding sets ofsignal information and determine an identifier of a transponder 116corresponding to the difference(s). For example, the computer system 110may observe that a value for the element 614 is different than a valuefor the element 514, and that both values are associated with the sameidentifier “A” in the signal information 506 and 606. The computersystem 110 may observe that a value for the element 616 is differentthan a value for the element 516, and that both values are associatedwith the same identifier “A” in the signal information 508 and 608. Thecomputer system 110 may further identify that the same identifier “A” isassociated with both differences in values.

The computer system 110 may determine the identifier or objectclassification associated with the object 114 based on a difference insignal characteristic value between one or more first values of a staticor non-motion state in which the robotic manipulator 106 is notextracting the object 114 (e.g., the state 500), and one or more secondvalues of a dynamic or moving state in which the robotic manipulator isextracting the object 114 (e.g., the state 600). The computer system 110may be configured to determine the identifier or object classificationbased on a difference in signal characteristic value between one or morefirst values of a first moving state and one or more second values of asecond moving state.

FIG. 7 shows a state 700 of the environment 100 during a time periodafter the state 600 according to one or more embodiments. In the state700, signal information is obtained regarding RF reply signals receivedby the set of antennas 108 during extraction of the object 114. Inparticular, the state 700 represents a time period in which theend-effector 128 possesses the object 114, and the robotic manipulator106 is actively moving the object 114 relative to the plurality ofobjects 102 after the state 600. The robotic manipulator 106 is shown inthe state 700 as moving the object 114 in a lateral direction 701. Thestate 600 and the state 700 may represent part of a single operation forextracting the object 114 in which the object 114 is extracted in acontinuous motion or several discrete motions by the robotic manipulator106. During the state 700, the computer system 110 obtains signalinformation during extraction of the object 114.

In the state 700, the computer system 110 causes the set of antennas toemit second RF interrogation signal(s) 704 over a time period T5 afterthe time period T4 in the state 600. In response, the transponders 116each emit an RF reply signal 704 over a time period T6 after the timeperiod T5. As described with respect to the state 500 and elsewhere, theRF reply signals 704 encode an identifier corresponding to theclassification of the corresponding object. The RF reply signal 704 aencodes an identifier corresponding to the classification of the object114. The computer system 110 receives the RF reply signal(s) 704(including the RF reply signal 704 a) via the set of antennas 108 andgenerates signal information regarding the RF reply signals 704received. The computer system 110, via the reader 302, generates a setof signal information 706 corresponding to the RF reply signals 704received by the first antenna 108 a and generates a set of signalinformation 708 corresponding to the RF reply signals 704 received bythe second antenna 108 b.

The values stored for the second collection of elements 512 of thesignal information 706 and 708 are similar to those in the sets ofsignal information 606 and 608, with the exception of the valuesrepresenting the detected signal characteristic of the RF reply signal704 a. In particular, the signal information 706 and 708 include valuesof the signal characteristic for the transponder 116 a of the object 114that are different relative to the values of the signal characteristicstored in the signal information 606 and 608 (and different than thevalues of the signal characteristic in the signal information 506 and508) for the transponder 116 as a result of a difference in the physicallocation of the object 114 relative to each of the antennas 108 a and108 b.

The signal information 706 and 708 include values of the signalcharacteristic for the transponder 116 a of the object 114 that aredifferent than the values of the signal characteristic stored in thesignal information 506 and 508. Implementing the logic discussed abovewith respect to the state 600, the computer system 110 may observe thatthe values for the element 714 is different than a value for the element714, and further observed that both values are associated with the sameidentifier “A” in the signal information 606 and 706. The computersystem 110 may observe that a value for the element 716 is differentthan a value for the element 616, and that both values are associatedwith the same identifier “A” in the signal information 608 and 708. Thecomputer system 110 may further identify that the same identifier “A” isassociated with both differences in values. Based on the correspondenceof the identifiers and the differences in signal characteristic valuesin different motion states, the computer system 110 may determine theidentifier or object classification of the object 114 as it is beingextracted by the robotic manipulator 106.

In some embodiments, the computer system 110 may be configured todetermine an identifier or classification of the object 114 based oncomparison of two static or non-motion states of the environment 100before and after extraction of the object 114. For instance, thecomputer system 110 may obtain the signal information 506 and 508 asdescribed with respect to FIG. 5. Then, after the robotic manipulator106 has extracted the object 114 from the plurality of objects 102 andis holding the object 114 in a static non-moving state, the computersystem 110 may obtain additional signal information regarding RF replysignals received by the set of antennas 108. The computer system 110 maythen compare the identifiers and signal characteristic values for thesignal information 506 and 508 in the additional signal information anddetermine the identifier of the object 114 extracted based ondifferences in the signal characteristic values before and afterextraction of the object 114.

FIG. 8 shows a state 800 of the environment 100 during a time periodafter the computer system has obtained signal information for two ormore time periods associated with extraction of the object 114. In thestate 800, the computer system 110 has obtained sets of signalinformation 802 that includes signal information obtained in two or moretime periods. After the computer system 110 has obtained sufficientcollection of signal information 802, the computer system 110 maycompare a first set of signal information 802 a obtained during a firsttime period with a second set of signal information 802 b obtainedduring a second time period to determine the identifier or objectclassification of the object 114 extracted. In some embodiments, thefirst set of signal information 802 a may include signal information forRF reply signals received by a plurality of antennas, which is comparedwith corresponding signal information for RF reply signals received bythe plurality of antennas in the second set of signal information 802 b.

As a result of determining the identifier or object classification ofthe object 114 extracted, the computer system 110 in the state 800references the data structure 412 stored in the memory 240 and obtainsoperation instructions 414 corresponding to the identifier or objectclassification of the object 114. As shown in the state 800, thecomputer system 110, according to the operation instructions 414, maycause the robotic manipulator 106 to maneuver the object 114 to aparticular location 804 specified or referenced in the operationinstructions 414 and release or deposit the object 114 at the particularlocation 804. The computer system 110 may further control machinery ordevices, such as a series of conveyors 806, to advance the object 114 toa destination indicated in the operation instructions 414.

FIG. 9A shows a representation 900 a of a plurality of sets of signalinformation obtained by a first antenna over a period of time. FIG. 9Bshows a representation 900 b of a plurality of sets of signalinformation obtained by a second antenna over the period of time. Thefirst antenna and the second antenna are spaced apart from each other inmay be located on different sides of an area in which objects are to beextracted, such as the designated area 104. The first antenna and thesecond antenna may be located on opposite sides of the designated area104—for instance, the first antenna may be the antenna 108 a and thesecond antenna may be the antenna 108 b shown in the environment 100.

The signal information in the representation 900 a and therepresentation 900 b represents a plurality of objects havingtransponders that emit different identifiers in the environment 100. Therepresentation 900 a includes an icon 902 representing an object thathas a transponder emitting a signal encoding a first identifier, an icon904 representing an object that has a transponder emitting a signalencoding a second identifier, an icon 906 representing an object thathas a transponder emitting a signal encoding the first identifier, anicon 908 representing an object that has a transponder emitting a signalencoding a third identifier; and an icon 910 representing an object thathas a transponder emitting a signal encoding a fourth identifier.

In the representation 900 a, a first antenna receives sets of RF replysignals over a time period from transponders of the objects representedby the icons 902, 904, 906, 908, and 910. The computer system 110, viathe reader 302, generates a set of signal information for each set of RFreply signals received. As shown in the representation 900 a, a firstset of signal information is obtained at the time t₁, a second set ofsignal information is obtained at a time t₃, a third set of signalinformation is obtained at a time t₄, a fourth set of signal informationis obtained at a time t₅, a fifth set of signal information is obtainedat a time t₆, and a sixth set of signal information is obtained at atime t₇. Between the times to and t₂, the environment 100 is in thestate 500 in which the robotic manipulator 106 is not extracting theobject 114, as discussed with respect to FIG. 5. The environment 100between the time t₂ and the time t₈ is in a state in which the roboticmanipulator 106 is in possession of and moving the object 114.

The computer system 110 analyzes the signal information in therepresentation 900 a to determine an identifier corresponding to theobject 114 being manipulated. The computer system 110 may analyze two ormore sets of the signal information during extraction of the object 114,such as the signal information at the times t₃ and t₄, to determine theidentifier of the object 114 according to defined instructions executedby the processor(s) 238 of the computer system 110. The computer system110 may be configured to compare the signal information for a staticstate of the environment 100 (i.e., at the time t₁) with signalinformation for one or more dynamic state of the environment 100 (i.e.,at times after the time t₂) to identify the object 114 by determiningdifferences between the signal characteristic values for the staticstate and the dynamic state.

As a first step in analyzing the signal information, the computer system110 adds, for each set of signal information, the signal characteristicvalues for each identifier type into an aggregate value for theidentifier type. For example, for the set of signal information for thetime t₃, the computer system 110 adds the signal characteristic valuesfor the icon 902 and the icon 906 into a first aggregate value, the icon902 and the icon 906 being of the same signal identifier type. Thecomputer system 110 also adds, for the set of signal information of thetime t₄, the signal characteristic values of the icon 902 and the icon906 into a second aggregate value. For other identifier types, thesignal characteristic values are also added together into a separateaggregate value for the identifier types; however, no other identifiertype shown in the representation 900 includes more than one RF replysignal information, so the first step may be concluded for therepresentation 900 a upon aggregating the signal characteristic valuesfor the identifier type of the icons 902 and 906.

At the next step, the computer system 110 compares the aggregate valuesor the single values for each identifier type. Comparing the values orthe aggregate values may include determining a difference between theaggregate values or single values for each identifier type. Forinstance, the computer 110 may determine that a difference between thesignal characteristic value of the icon 910 at the time t₃ and thesignal characteristic value of the icon 910 at the time t₄ is zero orclose to zero. Differences between the signal characteristic values ofthe icon 908 and the signal characteristic values of the icon 904 arealso zero or close to zero.

The difference in aggregated values for the identifier type of the icons902 and 906 between the time t₃ and t₄ is approximately 10. The computersystem 110 may compare the difference in aggregated values for differenttimes with a defined threshold. As a result of the difference inaggregated values exceeding the defined threshold, the computer system110 determines that the object 114 has the identifier type correspondingto the difference exceeding the defined threshold. For instance,referring back to the representation 900 a, the defined threshold may beof value of 1, and the computer system 110 may therefore identify theobject 114 extracted as having the first identifier corresponding to theicons 902 and 906 based on the difference in aggregated value of 10exceeding the defined threshold. The computer system 110 may obtain andcompile difference values of the object 114 to determine informationregarding a trajectory of the object 114 over time.

In some embodiments, the computer system 110 may use signal informationof an RF reply signal received by a second antenna. Referring to FIG.9B, the representation 900 b includes signal information regarding an RFreply signal received by the second antenna 108 b, which may be used toimprove a confidence in the identifier determined for the object 114, orbe used to determine other information regarding the object 114, such asa location, speed, acceleration, or direction of the object 114.

The representation 900 b includes an icon 912 representing an objectthat has a transponder emitting a signal encoding the fourth identifier,an icon 914 representing an object that has a transponder emitting asignal encoding the first identifier, an icon 916 representing an objectthat has a transponder emitting a signal encoding the third identifier,a third icon 918 representing an object that has a transponder emittinga signal encoding a second identifier; and an icon 920 representing anobject that has a transponder emitting a signal encoding a fourthidentifier.

The computer system 110 may perform the operations described above withrespect to FIG. 9A to determine a confidence regarding identification ofthe identifier of the object 114. For instance, the computer system 110may aggregate the signal characteristic values for the icons 912, 914,916, 918, and 920 over a two or more times t₁, t₂, . . . , t_(N) andconfirm the identifier of the object 114. The computer system 110 mayalso compile the differences between the signal information for two ormore times t₁, t₂, . . . , t_(N), and determine information regardingmovement of the object 114. The differences between signal informationfor the representation 900 a may be compared with the differences forthe signal information for the representation 900 b to determine adirection of the object, a speed of the object, acceleration of theobject, etc. For example, the computer system 110 may determine thesignal characteristic values for the object 114 in the representation900 a are increasing over the times t₁, t₂, . . . , t_(N), and that thesignal characteristic values for the object 114 in the representation900 b are decreasing over the times t₁, t₂, . . . , t_(N). As a resultof the relative increases and decreases in signal characteristic values,the computer system 110 may determine that the object 114 is moving in adirection toward the first antenna and in a direction away from thesecond antenna.

In some embodiments, the computer system 110 may identify the object 114based on comparison of two static or non-motion states of theenvironment 100. FIG. 10A shows a representation 1000 a of a pluralityof sets of signal information obtained by a first antenna over a periodof time. FIG. 10B shows a representation 1000 b of a plurality of setsof signal information obtained by a second antenna over the period oftime. The first and second antenna may be spaced apart from each otherand are located on different sides of the designated area 104, asdescribed elsewhere herein. The representations 1000 a and 1000 binclude an icon 1002 representing an object that has a transponderemitting a signal encoding a first identifier, an icon 1004 representingan object that also has a transponder emitting the signal encoding thefirst identifier, an icon 1006 representing an object that has atransponder emitting a signal encoding a second identifier, an icon 1008representing an object that has a transponder emitting a signal encodinga third identifier, and an icon 1010 representing an object that has atransponder emitting a signal encoding a fourth identifier.

In the representations 1000 a and 1000 b, signal information is capturedfor a time t₁ at which the object 114 is in a nonmoving state such thatthe object 114 is not being extracted or otherwise moved by the roboticmanipulator 106. The computer system 110 obtains a first set of signalinformation 1012 at the time t₁ during which the object 114 is in astatic or nonmoving state. At a time t₂, the robotic manipulator 106begins to extract or move the object 114 from the plurality of object102 to a different position. At a time t₃, the robotic manipulator 106returns to the nonmoving state to wait instructions. The roboticmanipulator 106, at the time t₃, may be in possession of the object 114.The computer system 110 obtains a second set of signal information 1014at the time t₃ during which the object 114 is in a static or nonmovingstate. The computer system 110 may then compare signal characteristicvalues between the first set of signal information 1012 and the secondset of signal information 1014, as described above with respect to therepresentations 900 a and 900 b, to determine the object 114 that wasmanipulated during a time period between t₂ and t₃.

The computer system 110 may also obtain a third set of signalinformation 1016 regarding signals received by the second antenna at thetime t₁ and also obtain a fourth set of signal information 1018regarding signals received by the second antenna at the time t₃. Thecomputer system 110 may then compare signal characteristic valuesbetween the third set of signal information 1016 and the fourth set ofsignal information 1018, as described above with respect to therepresentations 900 a and 900 b, to improve confidence regarding theobject 114 identified based on signal characteristic differencesdetermined as described with respect to the representation 1000 a theobject 114 that was manipulated during a time period between t₂ and t₃.The computer system may compare signal characteristic values between thethird set of signal information 1016 and the fourth set of signalinformation 1018 to determine further information regarding the object114, such as a location of the object 114.

FIG. 11 shows an overhead view 1100 of the environment 100 that includesa plurality of antennas 108 arranged around the designated area 104. Theenvironment 100 includes the antenna 108 a and the antenna 108 b shownin and discussed with respect to FIG. 1 and elsewhere herein. Theantenna 108 a is located at a first side 104 a of the designated area104 and the antenna 108 b is located at a second side 104 b opposite tothe first side 104 a. The computer system 110 is configured to controlthe antennas 108 a and 108 b to obtain signal information foridentifying the object 114.

In some embodiments, the environment 100 includes an antenna 108 clocated at a third side 104 c of the designated area 104 and includes anantenna 108 d located at a fourth side 104 d of the designated area 104opposite to the third side 104 c. Each of the antennas 108 c and 108 dare transversely located relative to the antennas 108 a and 108 b. Thethird side 104 c and the fourth side 104 d on which the antennas 108 cand 108 d are respectively located extend transversely relative to thefirst side 104 a and the second side 104 b. As a result of thetransverse location of the antennas 108 c and 108 d relative to theantennas108 a and 108 b, the reply signals received by the antennas 108c and 108 d may have different signal characteristics than the signalcharacteristics of the RF reply signals received by the antennas 108 aand 108 b.

For example, the object 114 shown in the view 1100 is positioned closerto the antenna 108 b than the antenna 108 a. A signal characteristic(e.g., signal strength) of a reply signal received by the antenna 108 bmay be different than a signal characteristic of the reply signalreceived by the antenna 108 a. Based on the relative signalcharacteristics, the computer system 110 may determine that the object114 is closer to the antenna 108 b than the antenna 108 a. Thetransverse location of the antennas 108 c and 108 d enable the computersystem 110 to determine information about the object 114 along an axisor direction transverse to direction or axis along which the antennas108 a and 108 b are located. In the situation shown in the view 1100,the signal characteristics of reply signals emitted by the transponder116 of the object 114 received by the antennas 108 c and 108 d may besimilar due to the position of the object 114 approximately halfwaybetween the antennas 108 c and 108 d. The computer system 110 maytherefore determine or estimate the location of the object 114 based onthe signal characteristics detected by the antennas 108.

The location of an antenna as being “transverse” or located“transversely” refers to a position of the antenna as being not directlyacross from another antenna. Transverse location therefore may apply todifferent geometries of the designated area 104 or the positions of theantennas 108 within the environment 100. For example, the antennas 108may be arranged in a circular geometry around the designated area 104,and antennas in the circular geometry that are not directly across fromeach other may be considered as being transversely located.

The computer system 110 is configured to control the antennas 108 c and108 d to obtain signal information regarding RF reply signalstransmitted by the transponders 116 of the plurality of objects 102. Thesignal information obtained by the computer system 110 based on the RFreply signals received by the antennas 108 c and 108 d includesidentifiers and signal characteristic values for each RF reply signalreceived from an object of the plurality of objects 102. The computersystem 110 may obtain signal information of RF reply signals received bythe antennas 108 c and 108 d, in the use the signal information toimprove confidence regarding the detection of the object 114 ordetermine additional information regarding the object 114, such as adirection in which the object 114 is being moved by the roboticmanipulator 106.

In particular, the computer system 110 may use signal informationcorresponding to RF reply signals received by the antennas 108 c and 108d in a manner similar to the representations 900 a and 900 b. Thecomputer system 110 may determine a direction, speed, or acceleration ofthe object 114 being moved by the robotic manipulator 106 based ondifferences in a signal characteristic value in the signal informationfor the antennas 108 c and 108 d. The computer system 110 may controloperation of the antennas 108 a and 108 b according to a first timing,and control operation of the antennas 108 c and 108 d according to asecond timing. The computer system 110, for example, may cause an RFinterrogation signal to be emitted by one or more of the antennas 108over a first time period. Then, the computer system 110 may obtain firstsignal information regarding RF reply signals received by the antennas108 a and 108 b over a second time period from the transponders of theplurality of objects 102. The computer system 110 may then cause an RFinterrogation signal to be emitted by one or more of the antennas 108over a third time period. Next, the computer system 110 may obtainsecond signal information regarding RF reply signals received by theantennas 108 c and 108 d over a fourth time period from the transpondersof the plurality of objects 102. The computer system 110 may analyze thefirst signal information, as described with respect to FIGS. 9A, 9B,10A, 10B, and elsewhere herein, to determine motion characteristics(e.g., such as speed, acceleration, location) of the object 114 along afirst axis extending between the antennas 108 a and 108 b. The computersystem 110 may analyze the second signal information, as also describedwith respect to FIGS. 9A, 9B, 10A, 10B, and elsewhere herein, todetermine motion characteristics (e.g., such as speed, acceleration,location) of the object 114 along a second axis extending between theantennas 108 c and 108 d. In the environment 100 shown in FIG. 11, thedesignated area 104 has a rectangular geometry and, as a result, thesecond axis is orthogonal to the first axis. In some embodiments, theantennas 108 may be arranged in a different configuration or geometryaround the designated area 104—for example, in a circular geometry or apolygonal geometry. The antennas 108 may be arranged according to ageometry of the designated area 104 in some embodiments.

FIG. 12 shows a method 1200 for identifying an object of a plurality ofobjects in the environment 100 according to one or more embodiments.Operations of the method 1200 may be performed by one or moreappropriate systems described herein, such as the computer system 110or, in some embodiments, the robotic manipulator 106. The method 1200includes detecting 1202 the presence of the plurality of objects 102 inthe designated area 104. Detecting 1202 may include receiving, by thecomputer system 110, video data indicating the presence of the pluralityof objects 102. The computer system 110 may determine that the roboticmanipulator 106 is about to begin processing the plurality of objects102 by extracting the object 114. In some embodiments, detecting 1202includes receiving a communication or notification from the roboticmanipulator 106 that processing of the plurality of objects 102 is aboutto begin.

The method 1200 includes controlling 1203 one or more of the antennas108 to emit an RF interrogation signal over a first time period. Themethod 1200 also includes extracting 1204 the object 114 of theplurality of objects 102 from the designated area 104. Extracting 1204may be performed, in some embodiments, autonomously (e.g., withoutreceiving instructions from the computer system 110) by the roboticmanipulator 106. In other embodiments, the computer system 110 maycontrol or instruct the robotic manipulator 106 to process the pluralityof objects 102 by extracting an object 114 therefrom. Some operations ofthe method 1200 may be performed in a different order than shown ordescribed—for example, extracting 1204 an object 114 may be performedprior to controlling 12 021 or more of the antennas 108 in someembodiments.

The method 1200 proceeds by obtaining 1206 signal information regardingRF reply signals received via the one or more antennas 108 over a secondperiod of time. The signal information obtained in 1206 includes anidentifier and signal characteristics of the RF reply signal received.The signal information may include information regarding the particularantenna 108 receiving the RF reply signal and may include temporalinformation associated with the signal information. Additional signalinformation may be obtained in 1206 by controlling the one or moreantennas to emit an RF interrogation signal and then obtaining signalinformation regarding RF reply signals received in response.

At 1208, the method 1200 includes comparing a signal characteristic ofthe RF reply signals received in connection with obtaining 1206 thesignal information. For example, the computer system 110 may add, foreach set of signal information, the signal characteristic values foreach identifier into an aggregate value. Then, in 1210, the aggregatevalues of each identifier are compared and the identifier of the object114 is determined as being the identifier having an aggregate valueexceeding a defined threshold or satisfying another criteria.

Next, the method 1200 includes causing 1212 performance of an operationinvolving the object 114 based on the identifier determined. Inparticular, the computer system 110 references the data structure 412and obtains operation instructions 414 for the identifier of the object114. The computer system 110 may cause the robotic manipulator 106 orother devices or machinery to perform various operations according tothe operation instructions 414 provided.

At 1214, the method includes determining whether additional objectsremain in the plurality of objects 102 to be processed. If additionalobjects remain to be processed, the method 1200 returns to extract 1204a remaining object of the plurality of objects 102 and variousoperations of the method 1200 are repeated. If, on the other hand, thereare no additional objects to be processed in the plurality of objects102, the method 1200 may return to wait until the presence of anotherplurality of objects is detected in the designated area 104.

In some embodiments, other short-range wireless transmissioncommunication protocols may be used instead of, or in conjunction with,RFID. For example, the transponders 116 may include Bluetoothtransponders, Bluetooth low energy transponders, Wi-Fi transponders, oroptical transponders. Such active transponders may be utilized tosupplement the use of the passive transponders described herein.

FIG. 13 illustrates a perspective view of a system 2000 for separatingsingle, individual objects from a plurality of objects (“singulating”the objects) and detecting whether plural objects have been separatedtogether (which represents a failure to effectively singulate theobjects, or a “double-pick”). The system 2000 may include any of thefeatures described herein with respect to FIGS. 1-12, including of theenvironment 100, objects 102, designated area 104, robotic manipulator106, antennas 108, computer systems 110, etc., and may be configured toperform any of the actions or methods described herein with respect toFIGS. 1-12.

As illustrated in FIG. 13, the system 2000 includes a designated areathat takes the form of a bin 2002, and which may include any of thefeatures described herein with respect to the designated area 104. Aplurality of objects, which may include any of the features describedherein with respect to the objects 102, and which include a first object2004, may be supplied to the bin 2002 for singulation. The system 2000also includes a robotic manipulator 2006, which may include any of thefeatures described herein for the robotic manipulator 106, and which maybe configured to pick up and move single, individual objects from thebin 2002 and move them to other portions of the system 2000 (tosingulate the objects). In some embodiments, the robotic manipulator2006 may include an end-of-arm tooling (“EOAT”) that has electrically-,hydraulically-, mechanically-, and/or pneumatically-powered fingers orgrippers. In some embodiments, the robotic manipulator 2006 may includean EOAT that has a suction and/or vacuum gripping mechanism.

As further illustrated in FIG. 13, the system 2000 includes a tray,which may be referred to as a “tilt tray” 2008, onto which the roboticmanipulator 2006 can deposit singulated items for further processing.The tilt tray 2008 is mounted on and supported by a robotic subsystem,which may be referred to as a “carriage” 2010, and which is configuredto move the tilt tray 2008 around in space with respect to othercomponents of the system 2000. For example, the carriage 2010 isconfigured to move the tilt tray 2008 laterally side-to-side, toward oraway from the robotic manipulator 2006, as well as up-and-down withrespect to a direction or orientation of gravity. Further, the carriage2010 is configured to hold the tilt tray 2008 in a first configurationor orientation, as illustrated in FIG. 13, which may be useful forholding and carrying the object 2004, and to tilt or rotate the tilttray 2008 into a second configuration or orientation, which may beuseful for depositing the object 2004 from the tilt tray 2008 to anotherportion of the system 2000.

As also illustrated in FIG. 13, the system 2000 includes a scale 2012,which may be configured to take a measurement of a weight of an objectplaced thereon. As illustrated in FIG. 13, the scale 2012 has a flat,horizontal upper surface onto which objects to be weighed can bedeposited for a weighing operation. The flat, horizontal, upper surfaceof the scale 2012 can be located directly below a flat, horizontalportion of the tilt tray 2008, such that the tilt tray 2008 can belowered onto the scale 2012 and the scale 2012 can measure the weight ofthe tilt tray 2008 together with any object(s) held thereon. A weight ofthe tilt tray 2008 (a tare weight) can be subtracted or removed from themeasured weight to determine the weight of the object(s) held thereon.

As also illustrated in FIG. 13, the system 2000 includes a set ofshelves, which may be referred to herein as a “rack” 2014, and intowhich singulated objects may be deposited from the tilt tray 2008. Asillustrated in FIG. 13, the rack 2014 includes a plurality of, such asat least three or at least four, rows of shelves arranged above andbelow one another, and a plurality of, such as at least six or at leastseven, columns of shelves arranged side-to-side adjacent or next to oneanother. Each of the individual shelves is open at a first side thereofthat faces toward the tilt tray 2008 and the carriage 2010, and is openat a second side thereof opposite the first side. Thus, in someimplementations, the objects may be deposited into the shelves at thefirst sides thereof from the tilt tray 2008, and may be retrieved fromthe shelves at the second sides thereof by a person or other roboticsystem, such as for further processing.

As illustrated in FIG. 13, a method of singulating individual objectsfrom a plurality of objects may include receiving a plurality ofobjects, including the first object 2004, into the bin 2002, and movingthe tilt tray 2008 until it is directly above the scale 212. Once theobjects have been received in the bin 2002, the robotic manipulator 2006may grasp and retrieve individual objects (e.g., the first object 2004)from the bin 2002, such as in accordance with any of the actions,methods, or techniques described herein with respect to FIGS. 1-12. Oncean individual object such as the first object 2004 has been retrievedfrom the bin 2002, the robotic manipulator 2006 moves the object fromthe bin 2002 to the tilt tray 2008 and deposits the object onto theflat, horizontal portion of the tilt tray 2008.

Once the object has been deposited onto the tilt tray 2008, the carriage2010 can move the tilt tray 2008 downward until the flat, horizontalportion of the tilt tray 2008 rests on the flat, horizontal uppersurface of the scale, and the carriage 2010 can further disengage anyrotationally and/or translationally rigid connections between thecarriage 2010 and the tilt tray 2008, such that the tilt tray 2008floats with respect to the carriage 2010, such as to reduce or eliminateany transmission of forces from the carriage 2010 to the scale 2012 andthereby improve accuracy of resulting measurements. The scale 2012 canthen be used to take a measurement of the weight of the tilt tray 2008and any objects held thereon.

The measurement of the weight can be used, such as in accordance withtechniques described elsewhere herein, to determine either that the tilttray 2008 is holding a single object, and thus that the singulationoperation was successful, or that the tilt tray 2008 is holding morethan a single object, and thus that the singulation operation was notsuccessful. If it is determined that the tilt tray 2008 is holding asingle object, and thus that the singulation operation was successful,then the system 2000 may further determine or identify which of theshelves in the rack 2014 the object is to be deposited into, which maybe based on an object type of the object, as described elsewhere herein.If it is determined that the tilt tray 2008 is holding more than asingle object, and thus that the singulation operation was notsuccessful, then the system 2000 may further determine or identify whichof the shelves in the rack 2014 the object is to be deposited into,which may be a shelf designated for “reject,” “exception,” or “fault”objects.

Once the measurement of the weight has been taken and it has beendetermined whether or not the tilt tray 2008 is holding a single object,the carriage 2010 can re-engage rotationally and/or translationallyrigid connections to the tilt tray 2008, and move the tilt tray 2008upward off of and away from the scale 2012. The carriage 2010 can thenmove the tilt tray 2008 sideways away from the bin 2002 to a horizontallocation corresponding to or adjacent to a column of shelves includingthe shelf into which the object is to be deposited. The carriage 2010can then move the tilt tray 2008 vertically up or down to a verticallocation corresponding to or adjacent to a row of shelves including theshelf into which the object is to be deposited, such that the tilt tray2008 is then adjacent to the shelf into which the object is to bedeposited. The carriage 2010 can then tilt or rotate the tilt tray 2008until the object slides off the tilt tray 2008 and into the shelf underthe force of gravity.

Once the object has been deposited into the shelf in this manner, thecarriage 2010 can tilt or rotate the tilt tray 2008 back to its originalorientation, and move the tilt tray 2008 both horizontally andvertically back to its original position, such that it is arranged toreceive another object from the robotic manipulator 2006.

FIG. 14 illustrates the tilt tray 2008, the carriage 2010, and otherrelated components separated from the rest of the system 2000. Asillustrated in FIG. 14, the carriage 2010 is mounted on a pair ofhorizontal bars or rails 2016 that extend side-to-side, toward or awayfrom the robotic manipulator 2006. The carriage 2010 may also includeone or more motors or other actuators to actuate horizontal movement ofthe carriage 2010 along the rails 2016. As also illustrated in FIG. 14,the carriage 2010 includes a vertical bar or rail 2018 that extendsup-and-down. The tilt tray 2008 is mounted to and supported by thecarriage 2010 on a horizontal bar or rail 2020 such that the tilt tray2008, together with the horizontal bar or rail 2020, can travelup-and-down with respect to a direction or orientation of gravity alongthe rail 2018. The carriage 2010 may also include one or more motors orother actuators to actuate vertical movement of the tilt tray 2008 andhorizontal rail 2020 along the vertical rail 2018. The carriage 2010 mayalso include one or more motors or other actuators to actuate rotationof the horizontal rail 2020 about its own central longitudinal axis tocause the tilt tray 2008 to tilt or rotate about the same axis, or toactuate rotation of the tilt tray 2008 about the central longitudinalaxis of the horizontal rail 2020 with respect to the horizontal rail2020.

FIG. 15 illustrates the tilt tray 2008 separated from the rest of thesystem 2000. As illustrated in FIG. 15, the tilt tray 2008 includes afirst portion 2022, which includes the flat, horizontal portion of thetilt tray 2008 when the tilt tray 2008 is in its original orientationand ready to receive an object from the robotic manipulator 2006. Asillustrated in FIG. 15, the first portion 2022 includes a rectangularbottom plate 2022 a that forms the flat, horizontal portion thereof, andthree rectangular sidewall plates 2022 b that extend upward at rightangles from respective side edges of the bottom plate 2022 a and atright angles or parallel to one another, such that the first portion2022 of the tilt tray 2008 forms a portion of a bin or a container forholding objects. In some implementations, two of the rectangularsidewall plates 2022 b opposite and parallel to one another can includerails and the rectangular bottom plate 2022 a can be mounted on therails such that the bottom plate 2022 a can be moved downward along therails, such as into contact with the scale 2012, and upward along therails, such as lifted off of the scale 2012.

As also illustrated in FIG. 15, the tilt tray 2008 includes a secondportion 2024 that includes a flat bottom portion 2024 a coupled to therectangular bottom plate of the first portion 2022 at an oblique anglebetween 90 and 180 degrees. In some cases, the rectangular bottom plateof the first portion 2022 and the flat bottom portion of the secondportion 2024 are integral with one another, and may be formed from asingle piece of sheet metal bent or folded where they meet. Asillustrated in FIG. 15, the second portion 2024 also includes tworectangular sidewall plates 2024 b that extend upward at right anglesfrom respective side edges of the flat bottom portion and parallel toone another, such that the second portion 2024 of the tilt tray 2008forms a portion of a bin or a container for holding objects.

The second portion 2024 is coupled to the first portion 2022 at a sideedge of the first portion 2022 that is not coupled to one of thesidewall plates 2022 b of the first portion 2022, and at a side edge ofthe second portion 2024 that is not coupled to one of the sidewallplates 2024 b of the second portion 2024. Thus, as illustrated in FIG.15, the tilt tray 2008 forms a container that extends from an end of thefirst portion 2022 opposite the second portion 2024, where it is closedby one of the sidewall plates 2022 a of the first portion 2022, to anend of the second portion 2024 opposite the first portion 2022, where itis not closed by one of the sidewall plates 2024 a of the second portion2024. In use, the tilt tray 2008 can be originally oriented with thefirst portion 2022 horizontal and configured to receive and hold anobject. Once it receives an object and is moved to a specified locationadjacent to a specific shelf of the rack 2014, the tilt tray 2008 can betilted or rotated about an axis parallel to or coincident with the jointbetween the rectangular bottom plate of the first portion 2022 and theflat bottom portion of the second portion 2024, such that the objectheld therein slides across the rectangular bottom plate of the firstportion 2022, across the flat bottom portion of the second portion 2024,and out the end of the second portion 2024 opposite the first portion2022 into the specific shelf of the rack 2014, where it is ready to beretrieved for subsequent sorting, scanning, placement, or otheroperations.

While the system 2000 is illustrated and described as including variouscomponents, the system 2000 may be provided with fewer than all of theillustrated and/or described components. For example, the system 2000may not include the rack 2014 or its shelves. In such implementations,the tilt tray 2008 and the carriage 2010 may be used to deposit objectsinto different bins, onto different conveyor belts, or generally intodifferent locations based on an object type of the object and thedetermination that the tilt tray 2008 is or is not holding more than asingle object. As another example, the system 2000 may not include thescale 2012. In such implementations, a measurement of a weight of theobject(s) held by the tilt tray 2008 may be taken by a load cell or astrain gage incorporated into the robotic manipulator 2006, into thetilt tray 2008, and/or into the carriage 2010.

As another example, the system 2000 may not include the tilt tray 2008,the carriage 2010, and the scale 2012. In such implementations, therobotic manipulator 2006 may be used to deposit objects into the shelvesof the rack 2014, into different bins, onto different conveyor belts, orgenerally into different locations based on an object type of the objectand a determination that the robotic manipulator 2006 is or is notholding more than a single object. Such a determination can be made inaccordance with any of the actions, techniques or methods describedherein, and may be based on a measurement of a weight of an object heldby the robotic manipulator 2006, which may be taken by a load cell or astrain gage incorporated into the robotic manipulator 2006. Further,while the system 2000 is illustrated and described as including a singletilt tray 2008 and a single carriage 2010 for carrying the tilt tray2008, in other embodiments, the system 2000 includes multiple tilt trays2008 and multiple carriages 2010 for carrying the tilt trays 2008, suchas in an assembly line fashion, which may increase the overallprocessing speed of the system 2000.

FIG. 16 illustrates a perspective view of a system 3000 for separatingsingle, individual objects from a plurality of objects (“singulating”the objects) and detecting whether plural objects have been separatedtogether (which represents a failure to effectively singulate theobjects, or a “double-pick”). The system 3000 may include any of thefeatures described herein with respect to FIGS. 1-15, including of theenvironment 100, objects 102, designated area 104, robotic manipulator106, antennas 108, computer systems 110, etc., and may be configured toperform any of the actions or methods described herein with respect toFIGS. 1-15.

As illustrated in FIG. 16, the system 3000 includes a designated areathat takes the form of a bin 3002, and which may include any of thefeatures described herein with respect to the designated area 104. Aplurality of objects, which may include any of the features describedherein with respect to the objects 102, and which include a first object3004, may be supplied to the bin 3002 for singulation. The system 3000also includes a robotic manipulator 3006, which may include any of thefeatures described herein for the robotic manipulator 106, and which maybe configured to pick up and move single, individual objects from thebin 3002 and move them to other portions of the system 3000 (tosingulate the objects). In some embodiments, the robotic manipulator3006 may include an end-of-arm tooling (“EOAT”) that has electrically-,hydraulically-, mechanically-, and/or pneumatically-poweredfingers/grippers. In some embodiments, the robotic manipulator 3006 mayinclude an EOAT that has a suction and/or vacuum gripping mechanism.

As further illustrated in FIG. 16, the system 3000 includes a tray,which may be referred to as a “tilt tray” 3008, onto which singulateditems can be deposited for further processing. The tilt tray 3008 ismounted on and supported by a robotic subsystem, which may be referredto as a “carriage” 3010, and which is configured to move the tilt tray3008 around in space with respect to other components of the system3000. For example, the carriage 3010 is configured to move the tilt tray3008 laterally side-to-side, toward or away from the robotic manipulator3006, as well as up-and-down with respect to a direction or orientationof gravity. Further, the carriage 3010 is configured to hold the tilttray 3008 in a first configuration or orientation, which may be usefulfor holding and carrying the object 3004, and to tilt or rotate the tilttray 3008 into a second configuration or orientation, which may beuseful for depositing the object 3004 from the tilt tray 3008 to anotherportion of the system 3000.

As also illustrated in FIG. 16, the system 3000 includes a weighingconveyor or weighing conveyor belt 3012, which may be configured to takea measurement of a weight of an object placed thereon as it conveys theobject across its upper surface in a direction extending away from thebin 3002. As illustrated in FIG. 16, the weighing conveyor belt 3012 hasa flat, horizontal upper surface onto which objects to be weighed can bedeposited for a weighing operation. As also illustrated in FIG. 16, thesystem 3000 further includes a separating conveyor or separatingconveyor belt 3016, which may be configured to redirect objects beingconveyed across its upper surface in a direction extending away from thebin 302. As illustrated in FIG. 16, the separating conveyor belt 3016has a flat, horizontal upper surface onto which objects to be separatedcan be deposited for a separating operation, and a rotatable arm orwiper 3018 controllable by a pneumatic rotary actuator 3020 to rotateabout a vertical axis across the flat, horizontal upper surface of theseparating conveyor belt 3016.

As also illustrated in FIG. 16, the system 3000 includes a set ofshelves, which may be referred to herein as a “rack” 3014, and intowhich singulated objects may be deposited from the tilt tray 3008. Asillustrated in FIG. 16, the rack 3014 includes a plurality of, such asat least three or at least four, rows of shelves arranged above andbelow one another, and a plurality of, such as at least six or at leastseven, columns of shelves arranged side-to-side adjacent or next to oneanother. Each of the individual shelves is open at a first side thereofthat faces toward the tilt tray 3008 and the carriage 3010, and is openat a second side thereof opposite the first side. Thus, in someimplementations, the objects may be deposited into the shelves at thefirst sides thereof from the tilt tray 3008, and may be retrieved fromthe shelves at the second sides thereof by a person or other roboticsystem, such as for further processing.

As illustrated in FIG. 16, a method of singulating individual objectsfrom a plurality of objects may include receiving a plurality ofobjects, including the first object 3004, into the bin 3002, and movingthe tilt tray 3008 until it is positioned to receive objects from aterminal, distal end of the separating conveyor 3016. Once the objectshave been received in the bin 3002, the robotic manipulator 3006 maygrasp and retrieve individual objects (e.g., the first object 3004) fromthe bin 3002, such as in accordance with any of the actions, methods, ortechniques described herein with respect to FIGS. 1-12. Once anindividual object such as the first object 3004 has been retrieved fromthe bin 3002, the robotic manipulator 3006 moves the object from the bin3002 to the weighing conveyor 3012 and deposits the object onto theflat, horizontal upper surface of the weighing conveyor 3012.

The weighing conveyor 3012 can then be used to take a measurement of theweight of the object deposited thereon and to simultaneously convey theobject across its upper surface away from the bin 3002 and toward theseparating conveyor 3016. The measurement of the weight can be used,such as in accordance with techniques described elsewhere herein, todetermine either that the weighing conveyor 3012 is conveying a singleobject, and thus that the singulation operation was successful, or thatthe weighing conveyor 3012 is holding more than a single object, andthus that the singulation operation was not successful. If it isdetermined that the weighing conveyor 3012 is conveying a single object,and thus that the singulation operation was successful, then the system3000 may further determine or identify which of the shelves in the rack3014 the object is to be deposited into, which may be based on an objecttype of the object, as described elsewhere herein. If it is determinedthat the weighing conveyor 3012 is conveying more than a single object,and thus that the singulation operation was not successful, then thesystem 3000 may further determine or identify that the objects are to bedeposited into a bin, shelf, or further conveyor belt designated for“reject,” “exception,” or “fault” objects.

Once the measurement of the weight has been taken and it has beendetermined whether or not the weighing conveyor 3012 is conveying asingle object, the object(s) are deposited from the weighing conveyor3012 onto the adjacent separating conveyor 3016. If it was determinedthat the weighing conveyor 3012 was conveying a single object, then thepneumatic rotary actuator 3020 is operated to actuate the wiper 3018 torotate off of the upper surface of the separating conveyor 3016, suchthat there is a clear path for the object to travel across the uppersurface of the separating conveyor 3016, and to simultaneously conveythe object across the upper surface of the separating conveyor 3016 awayfrom the bin 3002 and toward the tilt tray 3008. The object is thenconveyed across the upper surface of the separating conveyor 3016, andis deposited from the separating conveyor 3016 into the tilt tray 3008,which was originally positioned to catch objects falling off theterminal, distal end of the separating conveyor 3016 farthest from thebin 3002.

If it was determined that the weighing conveyor 3012 was conveying morethan a single object, then the pneumatic rotary actuator 3020 isoperated to actuate the wiper 3018 to rotate onto the upper surface ofthe separating conveyor 3016, such that there is not a clear path forthe object to travel across the upper surface of the separating conveyor3016, and such that the wiper 3018 is positioned to redirect the objectsto fall off a side of the separating conveyor 3016, and tosimultaneously convey the objects across the upper surface of theseparating conveyor 3016 away from the bin 3002 and toward the tilt tray3008. The objects are then conveyed across the upper surface of theseparating conveyor 3016 until they collide with the wiper 3018, and arethen redirected to fall off the side of the separating conveyor 3016,such as into a bin, shelf, or further conveyor belt designated for“reject,” “exception,” or “fault” objects.

If the object has been deposited onto the tilt tray 3008, the carriage3010 can move the tilt tray 3008 sideways away from the bin 3002 to ahorizontal location corresponding to or adjacent to a column of shelvesincluding the shelf into which the object is to be deposited. Thecarriage 3010 can then move the tilt tray 3008 vertically up or down toa vertical location corresponding to or adjacent to a row of shelvesincluding the shelf into which the object is to be deposited, such thatthe tilt tray 3008 is then adjacent to the shelf into which the objectis to be deposited. The carriage 3010 can then tilt or rotate the tilttray 3008 until the object slides off the tilt tray 3008 and into theshelf under the force of gravity, where it is ready to be retrieved forsubsequent sorting, scanning, placement, or other operations.

Once the object has been deposited into the shelf in this manner, thecarriage 3010 can tilt or rotate the tilt tray 3008 back to its originalorientation, and move the tilt tray 3008 both horizontally andvertically back to its original position, such that it is arranged toreceive another object.

While the system 3000 is illustrated and described as including variouscomponents, the system 3000 may be provided with fewer than all of theillustrated and/or described components. For example, the system 3000may not include the rack 3014 or its shelves. In such implementations,the tilt tray 3008 and the carriage 3010 may be used to deposit objectsinto different bins, onto different conveyor belts, or generally intodifferent locations based on an object type of the object. As anotherexample, the system 3000 may not include the weighing conveyor 3012. Insuch implementations, a measurement of a weight of the object(s) held bythe robotic manipulator 3006 and/or the tilt tray 3008 may be taken by aload cell or a strain gage incorporated into the robotic manipulator3006.

As another example, the system 3000 may not include the tilt tray 3008,the carriage 3010, and the weighing conveyor 3012. In suchimplementations, the robotic manipulator 3006 may be used to depositobjects into the shelves of the rack 3014, into different bins, ontodifferent conveyor belts, or generally into different locations based onan object type of the object and a determination that the roboticmanipulator 3006 is or is not holding more than a single object. Such adetermination can be made in accordance with any of the actions,techniques or methods described herein, and may be based on ameasurement of a weight of an object held by the robotic manipulator3006, which may be taken by a load cell or a strain gage incorporatedinto the robotic manipulator 3006. Further, while the system 3000 isillustrated and described as including a single tilt tray 3008 and asingle carriage 3010 for carrying the tilt tray 3008, in otherembodiments, the system 3000 includes multiple tilt trays 3008 andmultiple carriages 3010 for carrying the tilt trays 3008, such as in anassembly line fashion, which may increase the overall processing speedof the system 3000.

The system 2000 and/or the system 3000 may be located and configured foroperation within a storage space such as a bin, a box, a sortingstation, a room, or a volume that is used to store, hold, warehouse, orotherwise contain objects, and/or within a larger assembly linearrangement. The system 2000 and/or the system 3000 may further belocated and configured for operation within a retail supply chainwarehouse where the objects to be singulated may include apparel,consumer goods, merchandise, and the like, and/or other items such astools, parts, components, packages, letters, foodstuffs, and the like.

As described elsewhere herein, a measurement of a weight of an objectpicked up by a robotic manipulator can be used to determine either thatthe singulation operation was successful, or that the singulationoperation was not successful. In some embodiments, such a determinationmay be made by first determining an identity or characteristic(s) of theobject (or at least one of the objects) picked up by the roboticmanipulator. Such a determination may be made by any of the methodsdescribed herein, by reading RFID tags, scanning barcode(s) on theobject(s), or visually, such as by using artificial intelligencetechniques to identify objects or their characteristics from images ofthe objects, such as may be obtained by a camera.

Once the identity or characteristic(s) of the object (or at least one ofthe objects) are determined, the system 2000 or 3000 may locate ameasure of an expected or acceptable weight or an expected or acceptablerange of weights for such an object, such as by reference to a databaseor lookup table stored in any of the storage devices described herein.For example, such a database may map various object identities andcharacteristics, such as types, shapes, sizes, and/or classes (e.g., achildren's clothing class, an adult clothing class, or a consumableproduct class), to expected or acceptable weights or weight ranges. Insome cases, an expected or acceptable weight range may be specified asan expected or acceptable average weight and an acceptable deviationfrom the average weight, such as in the form of x±y % or x±y, or may bespecified simply as acceptable upper and lower bounds. In some examples,an expected or acceptable weight range may be small, e.g., such that theacceptable upper bound is equal to the acceptable lower bound or the y %or y are equal to zero, or may be larger, e.g., such that the y % isequal to 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, or any othersuitable value.

Once the expected or acceptable weight range is located or determined,the measured weight of the object, obtained as described elsewhereherein, is compared to the expected or acceptable weight or weight rangefor the object. If the measured weight falls within the expected oracceptable range of weights, then it may be concluded that thesingulation operation was successful, and if the measured weight fallsoutside the expected or acceptable range of weights, then it may beconcluded that the singulation operation was not successful.

In some implementations, expected weight ranges are learned over time.For example, the systems described herein may begin with no knowledge ofthe weights of objects to be singulated. As objects are weighed andsingulated, however, the system may store the measured weights andthereby learn both what different types of objects typically weigh aswell as how much their weight typically varies. In some embodiments,acceptable weight ranges are determined or assigned based on thisexpected weight information alone. In other implementations, however,the system may be provided with the identities or characteristics of theobjects to be singulated in advance of the singulation, and theacceptable weight ranges may be determined or assigned based on thelearned expected weights and weight ranges, as well as on the specifiedidentities or characteristics of the objects to be singulated.

For example, if the system is informed that objects are to be singulatedfrom only one type or class of object, then the system may determine anacceptable weight range for the objects based on the weight measurementsfor only objects of that class. As one example, it may be determinedthat for a given first class of objects, the average weight is 10 poundsand the range of measured weights makes an optimum acceptable weightrange, when objects are to be singulated from only that class ofobjects, 2-18 pounds (this would prevent a double pick of two ten poundobjects but allow for a relatively wide range of weights of theobjects). As another example, it may be determined that for a givensecond class of objects, the average weight is 7 pounds and the range ofmeasured weights makes an optimum acceptable weight range, when objectsare to be singulated from only that class of objects, 5-9 pounds (thiswould prevent a double pick of two seven pound objects and provide anarrower range of weights of the objects than for the first class).

If, however, the system is informed that objects are to be singulatedfrom a collection of both the first and the second classes of objects,then the system may determine that different acceptable weight rangesare more appropriate and would lead to more optimal results. Forexample, in such a case, the system may determine that the optimumacceptable weight range for the first class of objects is now 4-16pounds (this would prevent a double pick of a ten pound object with aseven pound object, where the range of 2-18 pounds would not). Ingeneral, then, the system may determine the acceptable weight ranges forthe objects to be singulated, and may narrow the bounds of theacceptable weight ranges for heavier objects that are being singulatedfrom collections of objects that also include lighter objects. Suchtechniques, and any of the actions, techniques, or methods describedherein may be performed using artificial intelligence, machine learning,recursive learning, reinforced learning, neural network, or otherrelated techniques.

U.S. provisional patent application No. 62/847,011, filed May 13, 2019,is hereby incorporated by reference in its entirety. The variousembodiments described above can be combined to provide furtherembodiments. These and other changes can be made to the embodiments inlight of the above-detailed description. In general, in the followingclaims, the terms used should not be construed to limit the claims tothe specific embodiments disclosed in the specification and the claims,but should be construed to include all possible embodiments along withthe full scope of equivalents to which such claims are entitled.Accordingly, the claims are not limited by the disclosure.

1. A singulation system, comprising: a container configured to receivesingulated objects from a collection of objects to be singulated; arobotic manipulator configured to pick up an individual object from thecollection of objects; a sensor configured to measure a weight of theindividual object; and a computer system configured to compare themeasured weight of the individual object to an acceptable range ofweights for the individual object to confirm that the individual objectwas successfully singulated.
 2. The singulation system of claim 1wherein the container is a tilt tray.
 3. The singulation system of claim1 wherein the robotic manipulator is configured to deposit theindividual object into the container and the sensor is a scaleconfigured to measure a weight of the individual object while theindividual object is in the container.
 4. The singulation system ofclaim 1 wherein the sensor is a component of the robotic manipulator. 5.The singulation system of claim 4 wherein the sensor is a scale.
 6. Thesingulation system of claim 4 wherein the sensor is a strain gage. 7.The singulation system of claim 1 wherein the sensor is a weighingconveyor belt and the robotic manipulator is configured to deposit theindividual object onto the weighing conveyor belt.
 8. The singulationsystem of claim 7, further comprising a separating conveyor beltconfigured to receive the individual object from the weighing conveyorbelt.
 9. The singulation system of claim 8 wherein the separatingconveyor belt includes a diverter configured to modify a path across theseparating conveyor belt based on the confirmation that the individualobject was successfully singulated.
 10. The singulation system of claim9 wherein the diverter is a wiper configured to move to a firstposition, wherein in the first position the wiper blocks the path acrossthe separating conveyor belt, and to move to a second position, whereinin the second position the wiper does not block the path across theseparating conveyor belt. 11-20. (canceled)